home *** CD-ROM | disk | FTP | other *** search
/ NBC Slam Jams! / NBC Slam Jams!.iso / xtras / media_la / fx_set_1.fxm / 00141_Script_Number Field < prev    next >
Text File  |  1998-01-20  |  3KB  |  105 lines

  1. property pArrowsSprite, pTextSprite, pTextField, pCurVal, pActive, pCallBackObj, pRefcon
  2. property pMin, pMax
  3.  
  4. -- SPRITES FOR THE NUMBER FIELD OBJECT:
  5. -- Everything figures itself out from the pBackSprite0
  6. --  The label is -1
  7. --  The arrows are +1
  8. --  The text field should be in +2
  9. -- So the object occupies 4 consecutive sprites
  10.  
  11. on new me, propList, pArrowsSprite0, pTextSprite0, pTextField0, pMin0, pMax0, pCurVal0, pCallBackObj0, pRefCon0
  12.   set pArrowsSprite = getAProp(propList,#arrowsSprite)
  13.   set pTextSprite = getAProp(propList,#textSprite)
  14.   set pTextField = getAProp(propList,#textField)
  15.   set pMin = getAProp(propList,#min)
  16.   set pMax = getAProp(propList,#max)  
  17.   set pCurVal = getAProp(propList,#cur)
  18.   set pActive = getAProp(propList,#active)
  19.   set pCallBackObj = getAProp(propList,#callback)
  20.   set pRefCon = getAProp(propList,#ref)
  21.   
  22.   put string(pCurVal) into field pTextField
  23.   SetEnabled(me, pActive)
  24.   return(me)
  25. end
  26.  
  27. on wait me, waitTime
  28.   put the ticks into t
  29.   repeat while the ticks < t+waitTime
  30.   end repeat
  31. end
  32.  
  33.  
  34. on Arrows me, spriteNum
  35.   if not pActive then exit
  36.   put the locV of the clickLoc into v1
  37.   put the locV of sprite the clickOn into v2
  38.   if v1 < v2 then
  39.     put "up" into side
  40.     put 1 into d
  41.   else
  42.     put "down" into side
  43.     put -1 into d
  44.   end if
  45.   set the member of sprite spriteNum = member ("vertArrows"&&side)
  46.   set pCurVal = max(min(pCurVal+d,pMax),pMin)
  47.   setVal(me,pCurVal)
  48.   updateStage
  49.   wait(me,5)
  50.   repeat while the stillDown
  51.     if rollover(spriteNum) then
  52.       set the member of sprite spriteNum = member ("vertArrows"&&side)
  53.       set pCurVal = max(min(pCurVal+d,pMax),pMin)
  54.     else
  55.       set the member of sprite spriteNum = member "vertArrows"
  56.     end if
  57.     setVal(me,pCurVal)
  58.     wait(me,5)
  59.   end repeat
  60.   set the member of sprite spriteNum = member "vertArrows"
  61.   if objectP(pCallBackObj) then EndChange(pCallBackObj)
  62. end
  63.  
  64. on keyBoardInputDown me, k
  65.   if not pActive then exit
  66.   if "0123456789-"&BACKSPACE contains k then
  67.     pass
  68.   else
  69.     dontpassevent
  70.   end if
  71. end
  72.  
  73. on keyBoardInputUp me, k
  74.   if not pActive then exit
  75.   put value(field pTextField) into v
  76.   if v < pMin then put string(pMin) into field pTextField
  77.   else if v > pMax then put string(pMax) into field pTextField
  78.   set pCurVal = value(field pTextField)
  79.   changeNumber(pCallBackObj, pCurVal, pRefcon)
  80. end
  81.  
  82. on TextOut me
  83.   if voidP(pCurVal) then put " " into field pTextField
  84.   else put string(integer(pCurVal)) into field pTextField
  85. end
  86.  
  87.  
  88. on SetVal me, newVal
  89.   set pCurVal = newVal
  90.   TextOut(me)
  91.   if objectP(pCallBackObj) then changeNumber(pCallBackObj,newVal,pRefcon)
  92. end
  93.  
  94. on SetEnabled me, enabled
  95.   set pActive = enabled
  96.   enableInterfaceElement(pArrowsSprite,enabled)
  97.   enableInterfaceElement(pTextSprite,enabled)
  98. end
  99.  
  100. on Release me
  101.   -- release all puppets, constraints, etc.
  102. end
  103.  
  104.  
  105.